Digital multimedia content (e.g. video and/or audio data) must be transported across communication networks in a reliable and timely manner to the end user. Streaming video services (e.g. Internet Protocol television (PIT), video conferencing, video-on-demand, etc.) are especially sensitive to delay, jitter, or data loss, which can all negatively impact the quality of the end user's experience. Typically, digital multimedia content is encoded prior to transmission across the network. Part 1 (Systems) of the Moving Pictures Expert Group (MPEG-2) standard defines a Transport Stream (TS) for encoding and transporting multimedia content across somewhat unreliable media such as broadcast channels, Internet Protocol networks, etc. The Transport Stream consists of packets that carry video or audio data in their payload. The TS packets are received and decoded to reconstruct the original multimedia content. The Transport Stream protocol is also specified in International Standard ISO/ICE13818-1.
Determining the performance of a network that carries digital multimedia content is an important element to the successful design and operation of such a network. One measure of a network's performance is known as the Media Delivery Index (MDI). The MDI has two components: the delay factor (DF) and the media loss rate (MIR). The MDI is expressed as two numbers separated by a colon: DF:MLR.
The DF component of the MDI is the maximum difference, observed at the end of each network packet, between the arrival of media data and the drain of media data. DF is indicative of the packet jitter. A high value for DF indicates that a larger buffer depth is required to minimize the effects of packet jitter. To calculate DF, consider a virtual buffer VB used to buffer received packets of a stream. Each time a packet Pi, where i>0, arrives during a measurement interval, consider the response of the virtual buffer to the arrival of packet Pi by computing two VB values, VB(i,pre) and VB(i,post) as follows:
                              VB          ⁡                      (                          i              ,              pre                        )                          =                                            ∑                              j                =                1                                            i                -                1                                      ⁢                          S              j                                -                      MR            ·                          T              i                                                          (        1        )                                          VB          ⁡                      (                          i              ,              post                        )                          =                              VB            ⁡                          (                              i                ,                pre                            )                                +                      S            i                                              (        2        )            where Sj is the media payload size of the jth packet in the measurement interval, Ti is the arrival time relative to the last received packet in the previous measurement interval, or in the case of the first measurement interval, relative to the first packet. MR is the nominal media rate in bytes per second. VB(i,pre) is the virtual buffer size just before the arrival of Pi, and VB(i,post) is the virtual buffer size just after the arrival of Pi. These calculations are subject to the initial condition of VB(0,post)=VB(0,pre)=0 and VB(1,pre)=−MR·T1 at the beginning of each measurement interval. The measurement intervals are non-overlapping. The length of the measurement interval is arbitrary and may vary from application to application, but is typically selected to be 1 second.
The DF is calculated once every measurement interval as follows by finding the difference between the maximum and minimum values of VB:
                    DF        =                                                            max                                  i                  ≥                  0                                            ⁢                              (                                  VB                  ⁡                                      (                                          i                      ,                      post                                        )                                                  )                                      -                                          min                                  i                  ≥                  0                                            ⁢                              (                                  VB                  ⁡                                      (                                          i                      ,                      pre                                        )                                                  )                                              MR                                    (        3        )            
Note that the maximum and minimum include the zeros introduced by the initial conditions at i=0.
The MLR is defined as the number of lost or out-of-order packets per second. Unlike the DF, the measured result is not normalized by dividing by the bitrate. As a result, the two parts of the MDI are reported using different units of measurement.
For more information regarding the MDI, DF, and MLR measurements, please refer to the following publications: “A Proposed Media Delivery Index (MDI)”, by J. Welch and J. Clark, published in April 2006 by the Internet Engineering Task Force as IETF RFC 4445 and available at the following URL: http://www.rfc-editor.org/rfc/rfc4445.txt; and “IPTV QoE: Understanding and Interpreting MDI Values”, a white paper published by Agilent Technologies on Aug. 30, 2006 and available at the following URL: http://cp.literature.agilent.com/litweb/pdf/5989-5088EN.pdf
FIG. 1 shows a graphical illustration of the prior art DF measurement. The y-axis represents a virtual buffer (VB), and the x-axis represents time. The measurement intervals on the x-axis are delineated by hash marks and labeled measurement intervals 1 through 4 (MI1 through MI4). The level of the virtual buffer is represented by line 10. The level increases as packets arrive and decreases as packets are drained at the media rate (MR). As indicated by the legend 12, received packets are represented by a star.
The slope 14 of the line when decreasing is the rate at which packets are drained from the VB, which is essentially the media rate MR in equation (1). The DF for each measurement interval is represented by vertical arrows DF1-DF4 spanning between the highest peak and the lowest trough within each measurement interval. (Note that vertical arrows DF1-DF4 are merely representations of DF—they are not the actual DF, since they have not been normalized by MR). The highest peak within each measurement interval corresponds to max (VB(i,post)) in equation (3), and the lowest trough within each measurement interval corresponds to min(VB(i,pre)) in equation (3).
Calculating the DF can be problematic for several reasons. First, although the measurement intervals do not overlap, the DF calculation relies on the time interval Ti (see equation 1) which is measured relative to the last received packet in the previous measurement interval. This leads to a discrepancy in calculating DF for the very first measurement interval, since no prior measurement interval exists. As a result, the DF calculation for the first measurement interval is treated differently from the DF calculations for the remaining measurement intervals. This discrepancy is problematic because two different DF measurements of the same time interval in a packet stream could return different results, depending on when the measurements began.
Additionally, the DF can not be calculated for measurement intervals in which no packets are received. This may occur, for example, when a network has a temporary failure. In these situations, the DF for that packet-less measurement interval is defined to be the DF for the previous measurement interval in which packets were received. For example, in FIG. 1, no DF can be calculated in measurement interval 3 (MI3), since no packets arrived during that interval. Instead, the DF from the previous measurement interval (MI2) would be reported as the DF for measurement interval 3. Notice in FIG. 1 that DF3 is simply DF2 repeated for measurement interval 3. This practice leads to inaccurate and misleading DF values for packet-less measurement intervals.
Furthermore, when data packets do finally start arriving again, the DF calculation reports the delay accumulated across all the packet-less intervals, which can result in seemingly impossible DF values that are longer than the measurement interval itself. For example, in FIG. 1, the DF reported for measurement interval 4 (MI4) accumulates the delay from the previous measurement interval (MI3). Since the DF is reported in units of time, this results in a DF that is longer than the measurement interval itself, e.g. a DF that is 2.5 seconds in a measurement interval that is only 1 second long. This strange result can be confusing to users.
Finally, the DF does not consider the drain from the virtual buffer after the last packet in the measurement interval is received. This can be seen in FIG. 1. In measurement interval 2 (MI2), the result of equation (3) is that DF is measured only between peak point 16 and trough point 18. However, it is evident that the virtual buffer level is drained far below trough point 18 by the end of measurement interval 2, since there has been an interruption in the arrival of packets. Therefore, the DF reported for measurement interval 2 is smaller than it should be, giving the user an inaccurate and incomplete picture of the delay in that measurement interval.
Therefore, there remains a need for an improved method and apparatus for measuring and expressing the performance of a network that carries packet streams of digital multimedia content.